Auto merge of #4364 - RalfJung:feat, r=alexcrichton
authorbors <bors@rust-lang.org>
Sun, 20 Aug 2017 12:57:50 +0000 (12:57 +0000)
committerbors <bors@rust-lang.org>
Sun, 20 Aug 2017 12:57:50 +0000 (12:57 +0000)
commit5485b253c32e72406c4d777fd4bb59a6cf5ccfe4
treebba650b0d27a2c820747f4f3262b88cbc27e9226
parentd3366336bbeca205ae5187b5a40cbaef8380647b
parent8a4a291dd7cc4f8f37d877a79be962ec029d9b53
Auto merge of #4364 - RalfJung:feat, r=alexcrichton

Required dependencies are not features

Also, while I was at it, I fixed an error message which complained about something not being an optional dependency, when really what mattered was that it was not a dependency at all.

I made a bunch of guesses about how things work. These guesses ended up as comments in the commit (so hopefully, the next reader of these files has to guess less). I am not totally certain these comments are all correct, so please yell if not. :)

In particular, for resolve_features, I observed that dependencies get compiled even when they are not returned from that function. But judging from how the function used to behave, it actually returns all dependencies, even those that have nothing to do with any features. (Making the name rather misleading, TBH...)

Fixes #4363